package com.triones.api.service.interlace;

import com.ruoyi.common.core.domain.PageQuery;
import com.ruoyi.common.core.page.TableDataInfo;
import com.triones.api.entity.interlace.dto.InterlaceCurrencyChainDO;
import com.triones.api.entity.interlace.dto.InterlaceCurrencyDO;
import com.triones.api.entity.interlace.vo.InterlaceCurrencyChainVO;
import com.triones.api.entity.interlace.vo.InterlaceCurrencyVO;

import java.util.List;

/**
 * 币种链管理
 */
public interface InterlaceCurrencyChainService {

    /**
     * 查询币种列表（分页）
     * @param dto
     * @param pageQuery
     * @return
     */
    TableDataInfo<InterlaceCurrencyVO> pageList(InterlaceCurrencyDO dto, PageQuery pageQuery);

    /**
     * 币种详情
     * @param id
     * @return
     */
    InterlaceCurrencyVO getCurrencyDetail(Long id);

    /**
     * 检验币种唯一
     * @param dto
     * @return
     */
    boolean checkCurrency(InterlaceCurrencyDO dto);

    /**
     * 新增币种
     * @param dto
     * @return
     */
    boolean addCurrency(InterlaceCurrencyDO dto);

    /**
     * 修改币种
     * @param dto
     * @return
     */
    boolean editCurrency(InterlaceCurrencyDO dto);

    /**
     * 删除币种
     * @param id
     * @return
     */
    boolean removeCurrency(Long id);

    /**
     * 获取币种选择列表
     * @return
     */
    List<InterlaceCurrencyVO> currencyOptionList();

    /**
     * 查询链列表（分页）
     * @param dto
     * @param pageQuery
     * @return
     */
    TableDataInfo<InterlaceCurrencyChainVO> chainPageList(InterlaceCurrencyChainDO dto, PageQuery pageQuery);

    /**
     * 查询链详情
     * @param id
     * @return
     */
    InterlaceCurrencyChainVO getChainDetail(Long id);

    /**
     * 检验链唯一
     * @param dto
     * @return
     */
    boolean checkChain(InterlaceCurrencyChainDO dto);

    /**
     * 新增链
     * @param dto
     * @return
     */
    boolean addChain(InterlaceCurrencyChainDO dto);

    /**
     * 修改链
     * @param dto
     * @return
     */
    boolean editChain(InterlaceCurrencyChainDO dto);

    /**
     * 删除链
     * @param id
     * @return
     */
    boolean removeChain(Long id);

    /**
     * 获取链选择列表
     * @return
     */
    List<InterlaceCurrencyChainVO> chainOptionList();
}
